<?php

/*
 * Modelo: "usuario.php"
 * Copyright 2011 SISVOX.
 *
 * Licenciado bajo SISVOX, Version 1.0 (la "Licencia");
 * El codigo presente que compone este Software es propiedad unica y
 * exclusivamente de SISVOX, por lo tanto, usted no podrá utilizar este
 * archivo excepto en cumplimiento de la Licencia ofrecida por SISVOX.
 * Usted puede obtener una copia de la Licencia en:
 *
 *      Soluciones Integrales de Software Vox (SISVOX)
 *                 http://www.sisvox.com
 *
 *     - Carlos Calvo      <ccalvo@sisvox.com>
 *     - Andres Hernandez  <ahernandez@sisvox.com>
 *
 * A menos que sea requerido por la ley aplicable o se acuerde por escrito,
 * el software distribuido bajo la licencia se distribuye "TAL CUAL", CON
 * LAS GARANTIAS Y CONDICIONES expresadas en la "Licencia".
 */


class Usuario {
	
	/* Nombre de las Variables del Modelo (INFORMATIVO)
    // USUARIO
	+--------------------+-------------+------+-----+-------------------+-----------------------------+
	| Field              | Type        | Null | Key | Default           | Extra                       |
	+--------------------+-------------+------+-----+-------------------+-----------------------------+
	| login              | varchar(16) | NO   | PRI | NULL              |                             |
	| password           | varchar(50) | NO   |     | NULL              |                             |
	| nro_identificacion | int(11)     | NO   |     | NULL              |                             |
	| primer_nombre      | varchar(20) | NO   |     | NULL              |                             |
	| segundo_nombre     | varchar(20) | YES  |     | NULL              |                             |
	| primer_apellido    | varchar(20) | NO   |     | NULL              |                             |
	| segundo_apellido   | varchar(20) | YES  |     | NULL              |                             |
	| direccion          | text        | NO   |     | NULL              |                             |
	| cod_hab            | varchar(4)  | NO   |     | NULL              |                             |
	| tel_hab            | varchar(7)  | NO   |     | NULL              |                             |
	| cod_cel            | varchar(4)  | NO   |     | NULL              |                             |
	| tel_cel            | varchar(7)  | NO   |     | NULL              |                             |
	| correo             | varchar(50) | NO   |     | NULL              |                             |
	| fecha_creacion     | datetime    | NO   |     | NULL              |                             |
	| fecha_modificacion | timestamp   | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
	+--------------------+-------------+------+-----+-------------------+-----------------------------+
	
	// USUARIO_APLICACION
	+---------------+-------------+------+-----+---------+-------+
	| Field         | Type        | Null | Key | Default | Extra |
	+---------------+-------------+------+-----+---------+-------+
	| login         | varchar(16) | NO   | PRI | NULL    |       |
	| id_aplicacion | int(11)     | NO   |     | NULL    |       |
	| id_status     | char(1)     | NO   |     | NULL    |       |
	| permisologia  | text        | NO   |     | NULL    |       |
	+---------------+-------------+------+-----+---------+-------+
	
	// SMIST_USUARIO
	+--------------+-------------+------+-----+---------+-------+
	| Field        | Type        | Null | Key | Default | Extra |
	+--------------+-------------+------+-----+---------+-------+
	| login        | varchar(16) | NO   | PRI | NULL    |       |
	| id_rol       | int(11)     | NO   |     | NULL    |       |
	| permisologia | text        | NO   |     | NULL    |       |
	+--------------+-------------+------+-----+---------+-------+
	*/
	
    // Variable para los resultados de las Consultas
    private $respuesta;
	
	// Tablas del Modelo
	private $tusuario 				= "usuario";
	private $tsmit_usuario 			= "smit_usuario";
	
	
	// ==================================================================================================
	//	FUNCION - VALIDAR CONTRASEÑA
	// ==================================================================================================
	
	public function validar_contrasena( $login, $password ) {
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_global_WS'] );
		
		$sql = "select login as login 
				from ".$_SESSION['db_global_WS'].$_SESSION['schema_db_global_WS'].".$this->tusuario 
				where login = '$login' and 
					password = '$password'";
		
		$this->respuesta = $conexion->consultar($sql);
		
		$temparray = $this->respuesta->buscar_fila();
						
		if(!temparray)
		{
			$this->retorno[0] = "N";
			$this->retorno[1] = "CONTRASEÑA INVALIDA: ".$conexion->getLastMessage();
		}
		else
		{
			// Si se encontro un Resultado con el LOGIN y PASSWORD dado
			if ( $temparray['login'] != "" ) 
			{
				$this->retorno[0] = "S";
				$this->retorno[1] = "CONTRASEÑA VALIDA";	
			}
			// Si no se encontro ningun Resultado con el LOGIN y PASSWORD dado
			else
			{
				$this->retorno[0] = "S";
				$this->retorno[1] = "CONTRASEÑA INVALIDA";
            }
		}
		
		$conexion->desconectar();
		return $this->retorno;
	}
	
	
	// ==================================================================================================
	//	FUNCION - MODIFICAR CONTRASEÑA
	// ==================================================================================================
	
	public function modificar_contrasena( $login, $password_old, $password ) {
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_global_WS'] );
		
		$sql = "update ".$_SESSION['db_global_WS'].$_SESSION['schema_db_global_WS'].".$this->tusuario set 
					password = '$password' 
				where login = '$login' and 
					password = '$password_old'";
		
		$this->respuesta = $conexion->consultar($sql);
		
		$temparray = $conexion->buscarFilasAfectadas();
			
		if($temparray == 0)
		{
			$this->retorno[0] = "N";
			$this->retorno[1] = "No se pudo Modificar la Contraseña: ".$conexion->getLastMessage();
		}
		else
		{
			$this->retorno[0] = "S";
			$this->retorno[1] = "La Contraseña se ha Modificado con Exito.";
		}
		
		$conexion->desconectar();
		return $this->retorno;
	}
	
	
	//###################################################################################################
	//############################### OTRAS FUNCIONES DE OTROS MODELOS ##################################
	//###################################################################################################
	
	// ==================================================================================================			
	//	FUNCION - CONSULTAR EL NOMBRE DE UN USUARIO DADO SU LOIN
	// ==================================================================================================
	
	public function consultar_nombre_usuario( $login ) {
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smit_WS'] );
		
		$sql = "select u.login as login, 
					u.primer_nombre as primer_nombre, 
					u.segundo_nombre as segundo_nombre, 
					u.primer_apellido as primer_apellido, 
					u.segundo_apellido as segundo_apellido 
				from ".$_SESSION['db_global_WS'].$_SESSION['schema_db_global_WS'].".$this->tusuario as u, 
					".$_SESSION['db_smit_WS'].$_SESSION['schema_db_smit_WS'].".$this->tsmit_usuario as lu 
				where u.login = '$login' and 
					u.login = lu.login";
		
		$this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo consultar el Nombre Completo del Usuario");
		
		$temparray = $this->respuesta->buscar_fila();
			$nombre_usuario = $temparray['primer_nombre'];
			if ($temparray['segundo_nombre'] != "") {
				$nombre_usuario .= " ".$temparray['segundo_nombre'];
			}
			$nombre_usuario .= " ".$temparray['primer_apellido'];
			if ($temparray['segundo_apellido'] != "") {
				$nombre_usuario .= " ".$temparray['segundo_apellido'];
			}
			
		$conexion->desconectar();
		return strtoupper($nombre_usuario);
	}
}
?>